package com.warehouse.service;

import com.warehouse.dto.OrderDTO;
import com.warehouse.entity.Order;
import java.time.LocalDateTime;
import java.util.List;

public interface OrderService {
    
    List<Order> getAllOrders();
    
    List<OrderDTO> getAllOrdersWithDetails();
    
    OrderDTO getOrderWithDetailsById(Long id);
    
    Order getOrderById(Long id);
    
    Order getOrderByOrderNumber(String orderNumber);
    
    List<Order> getOrdersByCustomer(String customer);
    
    List<Order> getOrdersByStatus(String status);
    
    List<Order> getOrdersByDateRange(LocalDateTime startTime, LocalDateTime endTime);
    
    OrderDTO createOrder(OrderDTO orderDTO);
    
    Order updateOrder(Order order);
    
    OrderDTO updateOrder(OrderDTO orderDTO);
    
    boolean updateOrderStatus(Long orderId, String status);
    
    boolean deleteOrder(Long id);
    
    String generateOrderNumber();
    
    long getOrderCount();
} 